package com.offcn.search.pojo;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

@Document(indexName = "skuinfo")
@Data
public class SkuInfo implements Serializable { //和es对应

    /**
     * 商品id，同时也是商品编号
     */
    @Id
    private Long id;

    /**
     * SKU名称
     *
     * @Field 用于实现属性和es表字段对应
     * 利用注解的属性，可以设置es中字段的类型以及分词方式
     * 注解可以不添加在属性上，那么表中的字段就是默认情况
     * ik_smart 粗粒度分词
     */
    @Field(type = FieldType.Text, analyzer = "ik_smart")
    private String title;

    /**
     * 商品价格，单位为：元
     */
    @Field(type = FieldType.Double)
    private BigDecimal price;

    /**
     * 库存数量
     */
    private Integer num;

    /**
     * 商品图片
     */
    private String image;

    /**
     * 商品状态，1-正常，2-下架，3-删除
     */
    private String status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否默认
     */
    private String isDefault;

    /**
     * goodsId
     */
    private Long goodsId;

    /**
     * 类目ID
     */
    private Long categoryId;

    /**
     * 类目名称
     */
    @Field(type = FieldType.Keyword)
    private String category;

    /**
     * 品牌名称
     */
    @Field(type = FieldType.Keyword)
    private String brand;

    /**
     * 规格
     */
    private String spec;

    /**
     * 规格参数
     */
    private Map<String,Object> specMap;
}
